Browser Spinach

This software component works with your browser to control and improve its performance.

Browser Spinach Overview

This product improves browser performance by means of several strategies. Browser Spinach PCs with lots of memory show the best results, with performance gains of an order of magnitude against some common classes of sites.

Browser Spinach Reference

Each of Browser Spinach's features is discussed below. Since familiarity with the concept and practice of caching in web browsers is very helpful to understanding the value of the supplemental caches, an explanation is included for background purposes.

Caching Explained

Any modern browser will generally save documents and images accessed on the web in its cache, a private area on the PC's hard disk. On subsequent queries to the same site, the browser will -- for each document and image to be downloaded -- use HTTP to ask the site if the item has changed since the previous query. If not, the copy in the cache is used. Since the hard disk is much faster than the network, this technique is key to achieving acceptable performance despite slow connections.

Deficiencies in Caching as Implemented by Navigator and Explorer

The use of tiny images to create an appearance of sophisticated printing is much more widespread than anticipated by the authors of HTTP; for elaborate sites like www.microsoft.com or home.netscape.com, it is typical for several dozen such images to be included, in addition to the larger scale images that are normally blamed for poor browser performance. What's more, browsers sometimes do not optimize these queries effectively; images repeatedly used to achieve a typesetting look are repeatedly checked for updates, in some cases dozens of times for a single page! Although the queries to verify that an image hasn't changed are not individually expensive, taken together they can dramatically affect performance.

Supplemental Image Cache

Some users improve their web query speed by turning images off, but this strategy is increasingly unsatisfactory because more and more sites are designed so that vital elements of the user interface are entirely composed of images. These sites confront users running in text mode with large blank spaces where user interface elements would have appeared; thus these users are forced to repeatedly manually request the missing images, a time consuming and frustrating maneuver.

Browser Spinach uses its supplemental image cache (and Ad Suppression) to combat this problem. The assumption underlying this cache is that images are extremely unlikely to be updated during the few seconds that a page is loaded, and thus need not be checked for updates once downloaded. Furthermore, images are usually not updated in-place; i.e., updated images -- with some unusual exceptions -- do not share names with the images they replace. Taking advantage of this tendency allows Browser Spinach to eliminate many image queries and checks normally issued by a browser in the course of downloading a page.

Browser Spinach keeps track of what images should be in the browser cache. Since Browser Spinach is a separate program from the browser, this recordkeeping amounts to an educated guess, which will nearly always be accurate provided that the browser cache is of a decent size. There is a situation where Browser Spinach needs some help from the user, however; should the user empty the browser cache, Browser Spinach's reckoning of the browser cache contents will be out of sync with reality. In this case, the user should bring up the control page and click the browser cache was cleared button. Now Browser Spinach will know that the browser cache was emptied, and adjust its strategies accordingly.

Supplemental Document Cache

Browser Spinach's most dramatic effect on performance shows when querying sites which actively seek to defeat browser caching in order to deliver large numbers of advertisements to users' desktops. Typically, these sites are under commercial obligation to present many more advertisements than the sites have pages. Thus they are motivated to stop browser caching and ship a fresh round of ads to the user with each access. The constant flow of uncached HTML and new advertisement images from these sites brings about sluggish performance. Repeatedly accessing such sites can result in virtually identical HTML downloading again and again, with typically only the advertising links and images distinguishing one download from the next. Browser Spinach will usually automatically detect this technique and commence caching (and if Ad Suppression is enabled, advertising images will generally not be downloaded to your machine, even for sites you have never visited). For a site whose variations are sufficiently complex that Browser Spinach cannot confidently determine that they are insignificant, the user can force caching into effect by manually adding the site to the spinach cache list. If, on the other hand, Browser Spinach mistakenly interprets a site's changing content as superfluous and caches the site, the user can reverse this decision by adding the site to the no-cache list.

Prefetch of Frequently Accessed Sites

The goal of prefetching is to get web site content onto the user's machine so it will be immediately available upon request. Once the user's machine has established a connection to the Internet, Browser Spinach tracks the level of web activity over that connection. Should the connection apparently be idle, Browser Spinach will prefetch web pages listed on the Prefetch Priority Pages list (which can be viewed and edited on the Browser Spinach Control Page). Once these pages have been fetched, prefetching continues for those web pages most commonly accessed by the user.

Note that since Browser Spinach is only aware of web traffic, it may begin prefetching when there is no HTTP request active, but there is other network activity on the modem. Thus a user could be reading and sending mail, for example, and have his performance hurt by Browser Spinach's background prefetching. If this is the case, you can direct Browser Spinach not to prefetch until it has seen web activity on your machine. The effect of this policy would be to delay prefetching until you bring up your browser. To achieve this, go to the Browser Spinach Control Page) and check the No prefetching until browser's first HTTP query checkbox.

Another strategy would be to simply disable prefetching. Prefetching can be completely enabled or disabled by adjusting the Prefetching check box on the Browser Spinach Control Page).

The user also can control the extent of the prefetching by changing the maximum pages which will be prefetched at startup property on the Browser Spinach Control Page). By default this property is 100, but users who feel this large a prefetch set is an unnecessary burden on the PC can reduce the value. By the same token, users who would like to see more prefetching could increase it.

Custom JavaScript Initialization of Pages

Browser Spinach allows the user to associate custom JavaScript code with individual web pages, executing the appropriate code when a page is loaded. The most common use for this functionality is to give keyboard focus to the most useful field upon loading. Users who frequently visit search engines can profit from this functionality; usually, users wish to immediately type the search pattern after arriving at the search site, but for most search engine sites, a point and a click are needed to give focus to the appropriate field. By associating JavaScript code to give focus to the search pattern input field, the user can be spared this annoying step. For example, associating the JavaScript fragment "document.mfrm.q.focus();" with the Alta Vista search engine results in focus going to the search pattern input field immediately after Alta Vista is loaded. This particular customization and a few others like it are part of the standard Browser Spinach distribution. Users wishing to add to or subtract from the default customizations are of course always free to do so by means of the Custom Java Browser Spinach Control Page.

Browser Spinach Control Page

Browser Spinach's behavior can be controlled by the user by means of the Browser Spinach Control Page. To access this page: From the control page users can enable or disable any aspect of Browser Spinach's behavior. For example, should Browser Spinach's caching strategy lead to stale data being downloaded for a particular page, the user has the option of disabling Browser Spinach caching for that individual page (by means of the no-cache list). Browser Spinach Preferences are stored on the hard drive and remain in effect indefinitely -- or until overridden by the user.

Selective Suppression of Advertising Banners

If the suppress ad banners check box on the Browser Spinach Control Page is checked, then advertising banners will sometimes not be loaded; instead they are replaced with pairs of text links. Each pair of links consists of an Image link -- which allows the user to request that the page be redrawn with the suppressed image included -- and a To link -- which allows the user to jump directly to the destination underlying the image which was suppressed. If a page is loaded in the background (e.g., through prefetching), its banners are not suppressed. If a banner is known to already have been downloaded into either the browser cache or Browser Spinach's cache, then its display will likewise not be impeded. But if a page is loaded in a foreground query (i.e., while the user is waiting), banners which are not already cached will be replaced with the links mentioned above.

How Does Browser Spinach Guess Who the Advertisers Are?

Browser Spinach maintains a list of regular expressions to match against URLs to determine which ones are probably advertisers. An in-depth discussion of regular expressions would be beyond the scope of this document; if you are interested in learning more about them, Tom Christiansen's discussion of Perl5 regular expressions -- which are fully supported by Browser Spinach -- is a decent place to start.

The Default Ad Suppression List

For regular expression novices, the following is a breakdown of the default ad suppression regular expressions (as of October 8, 1998):
  • \bads?\b: the \b denotes a word boundary, so this regular expression matches a URL like http://www.acme.com/ads/... but not http://www.whatever.com/bads/... The ? indicates that the preceding element is not required for a match; thus both URLs with the embedded string /ad/ and ones with the embedded string /ads/ will be recognized by this regular expression. By the way, any punctuation is considered a word boundary, and thus http://ad.doubleclick... will also be recognized.
  • \bsponsor\b: this regular expression will match URLs like http://www.whatever.com/sponsor/k.gif. See the discussion above for an explanation of the meaning of \b.
  • \bbanners?\b: this regular expression will match URLs like http://www.whatever.com/banners/some.gif, or http://www.nonexistent.com/banner/some.jpg.

Changing the Ad Suppression List

The default list is fairly accurate but not perfect. Making the list more inclusive increases the risk that Browser Spinach will suppress an image which is not an advertisement. Such a mistake would of course not be a disaster; simply clicking on the Image link would immediately redraw the page from the cache, but this time retrieving the missing image.

The user is naturally free to find the ideal balance by adjusting the Ad Suppression list on the Browser Spinach Control Page. This would be appropriate if you frequently visit sites with advertisements which are not recognized by the default Ad Suppression list. In this case, activate audit mode to determine the URLs of the advertising images, and then fashion a regular expression of your own to match. For example, if an advertisement whose URL was http://www.annoying.com/something/or/other.gif, you could suppress all image links from that domain by adding www.annoying.com to the Ad Suppression list. Remember that images which have already been cached (by either the browser or Browser Spinach) will not be suppressed. Running audit mode will reveal whether this is the case.
If you want this section of documentation to be expanded with more details and examples, please indicate this desire by mailing Adynware.

Cache Item Age Limit

This quantity determines the number of days an image or document can stay in the cache before Browser Spinach automatically considers it outdated. The appropriate value for this variable depends on the volatility of the sites you visit which are being cached by Browser Spinach, and how frequently you visit these sites. Browser Spinach updates the cache every time you visit a site; but since the download takes place after your visit, it is possible that your browser could be served stale pages.

Cache Size Limit

The Cache Size Limit determines the maximum size of the Browser Spinach supplemental caches on your hard drive. For performance reasons, Browser Spinach does not guarantee that this limit will never be exceeded; however, Browser Spinach checks the cache size regularly, and should the size exceed the limit, will delete the least accessed items in the cache in order to get comfortably beneath the limit.

Note that the Browser Spinach supplemental caches are separate from your browser's cache.

Customer ID

This number identifies your PC to Adynware. This identification is used to simplify the installation and also to support measures taken to impede software piracy, and is required to purchase a permanent license.

Caching List

Browser Spinach maintains a list of sites to include in the supplemental document cache. Browser Spinach automatically includes in this list sites which do not significantly vary their content, yet use tactics whose only aim is to defeat the browser's caching. But some sites have enough random variation in their content that Browser Spinach cannot tell whether the changes are truly significant (e.g., a real-time stock market ticker tape) or just the usual advertising fluff. Sites sending variably formatted advertisements -- like webcrawler and infoseek -- will be cached by Browser Spinach only if the user adds these sites to the caching list on the Browser Spinach Control Page.

Prohibited Caching

If a site appears to Browser Spinach to be varying its content solely for the purpose of downloading advertisements -- as do all of the web's major search engines -- then Browser Spinach will cache this site. But obviously there do exist sites whose content constantly changes for good reason (e.g., a news ticker tape with a real-time data feed). Browser Spinach is designed to recognize such sites and not attempt to cache them, but it is possible for Browser Spinach to mistakenly determine that caching is appropriate. Should this happen, the user should add the affected site to the Browser Spinach's no-cache list, after which caching will be disabled for that site. This list can be modified from the Browser Spinach Control Page.

Browser Spinach's policy of assuming that images are not updated without corresponding name changes can also lead to incorrect image displays under some relatively unusual circumstances. Rapidly changing art sites sometimes use the rare technique of updating images under the same name; Browser Spinach would in this case display images from the previous query, and only realize its images were stale later. In the worst case, 50% of a user's accesses to such a site would display stale images. This case should be rare, but certainly for art sites in flux, there is a significant chance of some stale images being displayed from time to time. To avoid this situation, the user can add such sites to the no-cache list; sites on this list are always refreshed in their entirety as called for by the browser's normal caching policy.

The user can specify either specific pages or entire sites in the no-cache list. Obviously, if a site is added to the no-cache list, then no page from that site will ever be cached by Browser Spinach.

Connecting to Additional Proxy Servers

Should your browser configuration involve another proxy server in addition to Browser Spinach (e.g., a proxy server for crossing a firewall), you can direct all queries to the other proxy server by setting the Proxy Server fields appropriately from the Browser Spinach Control Page. Enter the name of the host where the other proxy server is running, and the port number on which that server is listening. Now Browser Spinach will forward all queries to the indicated proxy server.

To stop forwarding queries to a proxy server, click on the Change button and enter an empty string at the prompt.

Specifying Exceptions to Proxy Forwarding

To specify host names, IP addresses, or subnets which should be accessed directly instead of through the proxy, add them to the Bypass Proxy list on the control page. Note that this list only appears if a proxy server has been specified. So to direct Spinach to not use the proxy for the host 123.104.43.53, and also to not use the proxy for any host which has an IP address beginning with 57.127.200, you would specify 123.104.43.53 and 57.127.200 in the list. This also works for host names; to stop using the proxy for the host xyz.com or for any host ending with ".sun.com", you would add xyz.com and *.sun.com to the list.

Browser Spinach Port

Your browser communicates with Browser Spinach by means of a port, a numbered communications mechanism under Windows. Browser Spinach cannot share its port with any other listening programs (note that your browser does not listen to the port; the browser writes to the port). So there is potential for a conflict between Browser Spinach and another program on your PC which wants to read from the same port. Programs that read from ports are somewhat unusual, so it is unlikely that such a conflict should arise on a typical PC.

In any case, users have the power to change the port used by Browser Spinach by changing the Spinach Port field on the Browser Spinach Control Page. Note that this will be appropriate only in extremely rare circumstances. After adjusting this field, Browser Spinach must be restarted, which can be accomplished by rebooting.

Audit Mode

If Audit Mode is activated, a new secondary browser window is created to display information on each web element query. By means of the audit window, the user can determine the source of each element of every page brought down. Possibilities include the browser cache, the Browser Spinach cache, and the network (i.e., the web site where the page element resides). Network requests come in two categories: background network requests are satisfied behind the scenes when the modem is idle; foreground network requests are satisfied while the user waits, and are the source of most of the perceptible delay in bringing up the page.

To activate Audit Mode, go to the Browser Spinach Control Page and click the Audit Mode button.

To stop Audit Mode, click the End Audit Mode button at the top of the audit window.

Installation

New Browser Spinach users should download and install the full installation package. Users who have already installed Browser Spinach 1.17 or later are advised to download the incremental update, which offers the same functionality in a much smaller package.

Full Installation Package for New Users:

  • click on Browser Spinach 1.249 to download the Browser Spinach installation package.
  • Save the downloaded file latest.exe to your hard drive.
  • Unpack the saved file by executing latest. (One way to execute this file is to double click on it from Windows Explorer.) Two new files will be created in the same directory: Setup and adynware.
  • Install Browser Spinach by executing the newly created Setup.
  • Delete the latest, Setup and adynware files at your leisure.

Incremental Update for Users Who Have Already Installed Browser Spinach 1.17 or Later

The incremental update has the same functionality as the full package, but is much smaller, thus offering a speedier download.
  • click on Browser Spinach 1.249 Update to download the Browser Spinach installation update package.
  • Save the downloaded file update.exe to your hard drive.
  • Unpack the saved file by executing update. (One way to execute this file is to double click on it from Windows Explorer.) Two new files will be created in the same directory: Setup and adynware.
  • Install Browser Spinach by executing the newly created Setup.
  • Delete the latest, Setup and adynware files at your leisure.

Should an error occur during the installation (e.g., because your disk is full), fix the problem and execute Setup again. Setup can be run multiple times without any harm being done. However, once it has successfully installed an evaluation license, it will, when executed again, complain that the license already exists. There is no harm lurking behind this message, however; checking the license is the last of Setup's chores, so all other work associated with the installation will be done before the license check occurs.

Final Installation Step: Configure Your Browser

The final action carried out by the setup program is to start Browser Spinach. At this point, Browser Spinach is available and running on your machine. The installation program arranges for Browser Spinach to automatically run when the machine is brought up. A new program group is also added under Programs, called Browser Spinach. In that program group reside the following programs:

Just one additional manual step remains: to make your browser aware of Browser Spinach. In the terminology of the browser vendors, Browser Spinach is a proxy server, through which browsers execute queries. To communicate with Browser Spinach, the browser must be directed to forward its queries to Browser Spinach, instead of communicating directly with the addressed web sites. Thus Browser Spinach should work with any browser that supports proxy servers. Below are the steps to configure the various supported versions of Navigator and Internet Explorer for use with Browser Spinach:

Netscape Navigator 4.x

  • From the
  • Edit pulldown menu, select Preferences.
  • On the left of the dialog box is a column of categories. Toward the bottom of this column is the Advanced category. Click on the Advanced category in order to make it the current category.
  • Expand the Advanced category by hitting the right-arrow key. Alternatively, click on the tiny plus-sign to the left of the Advanced category label. Subcategories like Cache and Proxies should now be displayed below the Advanced category label.
  • Click on the Proxies category in order to make it the current category.
  • Click on the Manual proxy configuration radio button.
  • Click on the View button.
  • Set HTTP to 127.0.0.1 (which tells Navigator that Browser Spinach is installed on the current machine, as opposed to elsewhere on the network).
  • Immediately to the right, set Port to 38200.

Netscape Navigator 3.x

  • From the
  • Options pulldown menu, select Network Preferences.
  • Select the Proxies tab.
  • Click on the Manual Proxy Configuration check box.
  • Click on the View button.
  • Set HTTP Proxy to 127.0.0.1 (which tells Navigator that Browser Spinach is installed on the current machine, as opposed to elsewhere on the network).
  • Immediately to the right, set Port to 38200.

Microsoft Internet Explorer 4.x

  • From the View pulldown menu, select Internet Options.
  • Go to the Connection tab.
  • In the Proxy Server group of options, check the Access the Internet using a proxy server check box.
  • Warning: you must leave blank the Address and Port fields visible below the Access the Internet using a proxy server check box. (Setting these fields would establish Browser Spinach as a proxy server for all protocols, but Browser Spinach should only be a proxy for HTTP queries.)
  • Click the Advanced button.
  • For HTTP, set Address to 127.0.0.1 (which tells Explorer that Browser Spinach is installed on the current machine, as opposed to elsewhere on the network).
  • Set Port to 38200.

Microsoft Internet Explorer 5.x

  • From the Tools pulldown menu, select Internet Options.
  • Go to the Connections tab.
  • If you use DSL or your computer is on a local area network (LAN), then click on the LAN Settings button. Otherwise, in the Dial-up Settings group of options, select the connection through which you wish to determine whether Browser Spinach will be used. (If you are among the many users who only have one connection defined, then this connection will already be selected, so you don't need to do anything more for this step. If you have more than one connection and you want these settings to apply to them all, then you have to repeat the following steps for each of the connections.)
  • In the Dial-up Settings group of options, click the Settings button.
  • In the Proxy Server group of options, check the Use a proxy server check box.
  • Warning: you must leave blank the Address and Port fields visible below the Use a proxy server check box. (Setting these fields would establish Browser Spinach as a proxy server for all protocols, but Browser Spinach should only be a proxy for HTTP queries.)
  • Click the Advanced button.
  • For HTTP, set Address to 127.0.0.1 (which tells Explorer that Browser Spinach is installed on the current machine, as opposed to elsewhere on the network).
  • Set Port to 38200.

Microsoft Internet Explorer 3.x

  • From the View pulldown menu, select Options.
  • Go to the Connection tab.
  • In the Proxy Server group of options, check the Connect through a proxy server check box.
  • Click the Settings button.
  • Set the HTTP text field to 127.0.0.1 (which tells Explorer that Browser Spinach is installed on the current machine, as opposed to elsewhere on the network).
  • Set Port, the text field immediately to the right to 38200.

Known Bugs

Uninstall

To uninstall the product, carry out the following steps:

Uninstalling Browser Spinach

The uninstall program

Final Manual Step to Uninstalling

The final step is to stop your browser from trying to forward queries to Browser Spinach, which has been removed from the system. The sequence of steps required to accomplish this is different for each browser. Below are the steps to configure your browser to run without Browser Spinach:

Netscape Navigator 4.x

  • From the
  • Edit pulldown menu, select Preferences.
  • On the left of the dialog box is a column of categories. Toward the bottom of this column is the Advanced category. Click on the Advanced category in order to make it the current category.
  • Expand the Advanced category by hitting the right-arrow key. Alternatively, click on the tiny plus-sign to the left of the Advanced category label. Subcategories like Cache and Proxies should now be displayed below the Advanced category label.
  • Click on the Proxies category in order to make it the current category.
  • Click on the Direct connection to the Internet radio button.

Netscape Navigator 3.x

  • From the
  • Options pulldown menu, select Network Preferences.
  • Select the Proxies tab.
  • Click on the No proxies radio button.

Microsoft Internet Explorer 4.x

  • From the View pulldown menu, select Internet Options.
  • Go to the Connection tab.
  • In the Proxy Server group of options, uncheck the Access the Internet using a proxy server check box.

Microsoft Internet Explorer 5.x

  • From the Tools pulldown menu, select Internet Options.
  • Go to the Connections tab.
  • If you use DSL or your computer is on a local area network (LAN), then click on the LAN Settings button. Otherwise, in the Dial-up Settings group of options, select the connection through which you wish to determine whether Browser Spinach will be used. (If you are among the many users who only have one connection defined, then this connection will already be selected, so you don't need to do anything more for this step. If you have more than one connection and you want these settings to apply to them all, then you have to repeat the following steps for each of the connections.)
  • In the Dial-up Settings group of options, click the Settings button.
  • In the Proxy Server group of options, uncheck the Use a proxy server check box.

Microsoft Internet Explorer 3.x

  • From the View pulldown menu, select Options.
  • Go to the Connection tab.
  • In the Proxy Server group of options, uncheck the Connect through a proxy server check box.

© 2000 Adynware Corp.   All Rights Reserved.